SPB Git forge

spb/hilmacorp

Public
1commits 1branches 0releases
29.2 MBsize
maindefault branch
20 days agolast push
TypeScript 93.3% JavaScript 4.4% CSS 2.3%
2.0 KB · 62 lines tsx
Raw Blame History
1/**2 * Author: Simon-Pierre Boucher3 * Contact: contact@spboucher.ai4 * Project: Hilmacorp.ai — Web Platform5 * File: app/[locale]/industries/page.tsx6 * Description: Industries page — the twelve sectors served by Hilmacorp.ai7 */89import type { Metadata } from "next";10import Container from "@/components/Container";11import SectionHeading from "@/components/SectionHeading";12import { getMessages, isLocale, type Locale } from "@/lib/i18n";1314export async function generateMetadata({15  params,16}: {17  params: Promise<{ locale: string }>;18}): Promise<Metadata> {19  const { locale } = await params;20  if (!isLocale(locale)) return {};21  const { meta } = getMessages(locale);22  return { title: { absolute: meta.industries.title }, description: meta.industries.description };23}2425export default async function IndustriesPage({26  params,27}: {28  params: Promise<{ locale: string }>;29}) {30  const { locale } = await params;31  const { industries } = getMessages(locale as Locale);3233  return (34    <>35      <section className="relative overflow-hidden border-b border-line">36        <div className="grid-backdrop absolute inset-0" aria-hidden="true" />37        <Container className="relative py-20 sm:py-28">38          <SectionHeading as="h1" title={industries.title} lead={industries.lead} />39        </Container>40      </section>4142      <section className="py-16 sm:py-20">43        <Container>44          <ul className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">45            {industries.items.map((industry) => (46              <li47                key={industry.title}48                className="rounded-2xl border border-line bg-card p-7 shadow-sm transition-colors hover:border-accent"49              >50                <h2 className="font-display text-lg font-semibold text-ink">51                  {industry.title}52                </h2>53                <p className="mt-2 text-sm leading-relaxed text-ink-faint">{industry.body}</p>54              </li>55            ))}56          </ul>57        </Container>58      </section>59    </>60  );61}62